/**
 * (C)2012 Exlu Corporation. All rights reserved.
 * 注意事項   :
 */
package cn.exlu.wea.field.format;

import java.util.StringTokenizer;

/**
 * 数值格式化类
 * @author Mark 
 * @version 1.0.1
 * @CreateTime 2012-12-10
 */
public final class LpFormatDigitalUtil {

//    /**
//     * 删除数值中的逗号
//     * @param str 输入字段
//     * @return 删除逗号后的数值
//     */
//    public static String deleteComma(String str){
//        return str.replaceAll("[\\,]", "");
//    }
    
    /**
     * 添加数值中的逗号，适用于整数和浮点数
     * @param str 输入字段
     * @return 添加逗号后的数值
     */
    public static String addComma(String str){
        StringTokenizer tokenizer=new StringTokenizer(str,".");
        String[] strArr=new String[tokenizer.countTokens()];
        int i=0;
        while(tokenizer.hasMoreElements()){
            strArr[i++] =tokenizer.nextToken();
        }
        
        StringBuffer sb=new StringBuffer();
        // 添加整数部分
        // 判定是否有符号位
        String pStr=strArr[0];
        if(pStr.contains("+")||pStr.contains("-")){
            sb.append(pStr.charAt(0));
            pStr=pStr.substring(1);
        }
        char[] pArr=pStr.toCharArray();
        for(int j=0;j<pArr.length;j++){
            int k=pArr.length-j;
            if(k%3==0&&k!=pArr.length){
                sb.append(",");
            }
            sb.append(pArr[j]);
        }
        
        if(strArr.length<2){
            return sb.toString();
        }
        // 添加小数部分
        sb.append(".");
        char[] nArr=strArr[1].toCharArray();
        for(int j=0; j<nArr.length;j++){
            if(j%3==0&&j!=0){
                sb.append(",");
            }
            sb.append(nArr[j]);
        }
        return sb.toString();
    }
    
}
